#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

void shift_note(int k, char **pointeur);

int main(int argc,char *argv[])		//argc: nombre d'arguments  |  *argv[]: pointe sur le tableau contenant les caractères passés en argument
{
	 /**Initialisations**/
	/*******************/
	//tableau de demi-tons
	char *note[12];
	int isfound = 0;
	int act_note = 0;
	int next_note = 0;
	
	float res;
	
	//initialisation du tableau de notes
	note[0] = "do";
	note[1] = "do#";
	note[2] = "re";
	note[3] = "re#";
	note[4] = "mi";
	note[5] = "fa";
	note[6] = "fa#";
	note[7] = "sol";
	note[8] = "sol#";
	note[9] = "la";
	note[10] = "la#";
	note[11] = "si";
	
	
	
	//initialisation du tableau en nombre de demi-tons
	for(int i=0;i<argc-2;i++)
	{
		isfound=0;
		for(int j=0;((j<12)&&(isfound==0));j++)
		{
			if(strcmp(argv[i+1],note[j]) == 0){isfound=1;act_note=j;}
		}
		
		shift_note(act_note, note);
		
		isfound=0;
		for(int j=0;((j<12)&&(isfound==0));j++)
		{
			if(strcmp(argv[i+2],note[j]) == 0){isfound=1;next_note=j;}
		}
		
		res = (float)next_note / 2.0;
		
		if(i==0){printf("%1.1f",res);}
		else{printf(" %1.1f",res);}
		
	}
	
	
/*	for(int i=0;i<12;i++)
	{
		printf("%s\n",note[i]);
	}
	*/
	
	 /**CODE**/
	/********/

	 /**Fin*du*programme**/
	/********************/

	//Pour les programmes d'affichages
//	puts("");	//passe une ligne en fin de programme

	return 0;
}


void shift_note(int k, char **pointeur)
{
	char *temp;
	
	for(int i=0;i<k;i++)
	{
		temp = pointeur[i];
		pointeur[i] = pointeur[k];
		pointeur[k] = temp;
		
		for(int j=k;j<11;j++)
		{
			temp = pointeur[j];
			pointeur[j] = pointeur[j+1];
			pointeur[j+1] = temp;
		}
		
	}
	
}
